
// 这是一个第三方 store 的例子，
// 你可能需要把它与 React 集成。

// 如果你的应用完全由 React 构建，
// 我们推荐使用 React state 替代。

// 定义下一次的 id 
let nextId = 0;
// 初始数据
let todos = [{ id: nextId++, text: 'Todo #1' },{ id: nextId++, text: 'Todo #2' }];
// 创建一个订阅对象
let listeners = [];

export const todosStore = {
    // 添加一个元素
  addTodo() {
    todos = [...todos, { id: nextId++, text: 'Todo #' + nextId }]
    emitChange();
  },
    //   订阅
  subscribe(listener) {
    listeners = [...listeners, listener];
    return () => {
      listeners = listeners.filter(l => l !== listener);
    };
  },
    //   获取值
  getSnapshot() {
    return todos;
  }
};

function emitChange() {
  for (let listener of listeners) {
    listener();
  }
}

